package org.example.dynamic.controller;

import org.example.dynamic.enetity.DynamicCode;
import org.example.dynamic.enetity.FileInfo;
import org.example.dynamic.service.impl.IDynamicCodeServiceImpl;
import org.example.enums.FileTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;

/**
 * 用户：ID，名称，手机号，微信
 * 后续改为对象[1图片 2链接 3文字等]
 * 用户活码列表：活码名称，创建时间，更新时间，活码有效期，活码code，备注
 * 活码code详情：标题，图片打小百分比，是否存在顶部引导语，顶部引导语内容，是否存在底部引导语，底部引导语内容，预访问数，已访问数（支持多个图片：访问方式）超出预访问，则访问下一个
 * 通用：开启状态，支持访问次数，扫码次数，支持访问流量，访问流量，支持活码数量，活码数量，扫码人数，扫码IP
 * 意见箱：用户信息，意见，意见时间，处理结果
 * 消息通知：处理完成，通知对应用户
 */
@RestController
@RequestMapping("/dynamic")
public class DynamicCodeController {

    @Resource
    private IDynamicCodeServiceImpl service;
    /**
     * 创建活码，后续改为传输对象
     * @param dynamic
     * @return
     */
    @PostMapping("/create")
    public ResponseEntity<String> createCode(@RequestBody DynamicCode dynamic) {
        String code = service.createDynamicCode(dynamic);
        return ResponseEntity.ok(code);
    }

    /**
     * 生成活码
     * @param code 根据code查询图片url与基础信息
     * @return
     * @throws IOException
     */
    @GetMapping(value = "/qrcode/{code}", produces = MediaType.IMAGE_PNG_VALUE)
    public byte[] generateQRCode(@PathVariable String code) {
        return service.generateQRCode(code);
    }

    @GetMapping("/list")
    public Object list() {
        return service.list();
    }

}
